﻿#ifndef ZUTILS_H
#define ZUTILS_H

#include "ZFCommonHeader.h"
#include <QString>

ZFLIB_BEGIN_NAMESPACE

/**
 * @brief charArray2ByteArray
 *  字符数组转QByteArray
 *  1.对于末尾不含'\0'的字符数组，自动添加'\0'，安全地将字符数组转为字符串。
 *  2.不会引入多余的'\0'
 * @param buf
 * @param size
 *  不包含末尾的'\0'的长度
 * @return
 */
QByteArray ZFLIB_API charArray2ByteArray(char *buf, int size = -1);

/**
 * @brief charArray2Local8BitString
 *  字符数组通过本地编码转Unicode字符串：
 *  1.对于末尾不含'\0'的字符数组，自动添加'\0'，安全地将字符数组转为字符串。
 *  2.不会引入多余的'\0'
 * @param buf
 * @param size
 * @return
 */
QString ZFLIB_API charArray2Local8BitString(char *buf, int size = -1);

/**
 * @brief charArray2Utf8String
 *  字符数组通过utf8编码转Unicode字符串：
 *  1.对于末尾不含'\0'的字符数组，自动添加'\0'，安全地将字符数组转为字符串。
 *  2.防止了引入多余'\0'的情况
 * @param buf
 * @param size
 * @return
 */
QString ZFLIB_API charArray2Utf8String(char *buf, int size = -1);

ZFLIB_END_NAMESPACE

#endif // ZUTILS_H
